#include "detalheitem.h"

DetalheItem::DetalheItem(QObject *parent) :
    QObject(parent)
{
}

DetalheItem::~DetalheItem()
{
    foreach(QObject *item, _complementos)
        delete item;
}

QVariant DetalheItem::data(int role)
{
    switch(role) {
    case IdRole:
        return _id;
        break;
    case DateRole:
        return _data;
        break;
    case DescriptionRole:
        return _descricao;
        break;
    case StatusRole:
        return _status;
        break;
    case EntregueRole:
        return getEntregue();
        break;
    case ComplementosRole:
        qDebug() << "carregando os complementos novamente..." << _idTrack;
        return QVariant::fromValue(getComplementos());
        break;
    default:
        return QVariant();
    }
}

QHash<int, QByteArray> DetalheItem::roleNames()
{
    QHash<int, QByteArray> roles;
    roles[IdRole] = "id";
    roles[DateRole] = "date";
    roles[DescriptionRole] = "description";
    roles[StatusRole] = "status";
    roles[EntregueRole] = "entregue";
    roles[ComplementosRole] = "complementos";
    return roles;
}

void DetalheItem::addComplemento(int idTrack, int idDetalhe, ComplementoDetalheItem *item)
{
    if (idTrack == this->getIdTrack() && idDetalhe == this->getId()) {
        //qDebug() << "complemento adicionado!";
        _complementos.prepend(item);
        emit complementosChanged();        
    }
}
